﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Godot.core
{
    public abstract class Script : Resource
    {
        public abstract bool can_instance();

	    public abstract StringName get_instance_base_type(); // this may not work in all scripts, will return empty if so
	    
        public abstract ScriptInstance instance_create(Object p_this);
	    
        public abstract bool instance_has(Object p_this);

        public abstract bool is_tool { get; }

        public abstract bool has_source_code();

	    public abstract String get_source_code();

	    public abstract void set_source_code(String p_code);

	    public abstract Error reload();

        public abstract string get_node_type();

        public abstract ScriptLanguage get_language();
    }
}
